package IHM;

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

import javax.swing.JScrollBar;




/*Creation de la zone centre */

public class CadreCentre extends JPanel implements DimensionIHM, ActionListener {

	int NbMachine;
	
	//public String Nom_Machine[];
	
	public MachineGraphique machines[];
	

	
	
	public CadreCentre(String Liste_Machine[]) {
	
		//this.Liste_Machine = Liste_Machine;
		
		
		//setLayout(null);
		
		
		
		NbMachine = Liste_Machine.length;
		
		machines = new MachineGraphique[NbMachine];
		
		for(int i=0;i<NbMachine;i++) {
			
			this.machines[i] = new MachineGraphique(Liste_Machine[i],i);
			
			machines[i].boutonMachine.addActionListener(this);
			//this.add(machines[i].boutonMachine);
			
			//machine(setBounds(2,2, arg2, arg3)
		}
		
		//setScrollBar(scroll);
		
		//repaint();
		
		
	}
	
	
	
	public static void setScrollBar(JScrollPane scroll,JPanel cadrecentre) {
		
		scroll.setPreferredSize(new Dimension(LARGEUR_CADRE_CENTRAL,HAUTEUR_CADRE_CENTRAL));
		
		scroll.add(cadrecentre);
		
		scroll.setViewportView(cadrecentre);
		
		scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
		
		
	}
	
	public void init() {
		
	
		
		
	}
	
	
	public static JPanel colonne(MachineGraphique machine) {
		
		JPanel CadreTemp = new JPanel();
		
		GridLayout disposition = new GridLayout(machine.NbBoutonRond+1,1);
		
		CadreTemp.setLayout(disposition);
		
		CadreTemp.add(machine.boutonMachine);
		
		System.out.println(machine.name);
		
		
		CadreTemp.add(machine.InfoCpu);
		
		CadreTemp.add(machine.InfoMemory);
		
		CadreTemp.add(machine.InfoDisqueDur);
		
		CadreTemp.add(machine.InfoOS);
		
		CadreTemp.add(machine.InfoConnecte);
		
		
		return CadreTemp;
	}
	
	
	public static void construire(JPanel cadre,MachineGraphique machinegraph []) {
		
		GridLayout disposition = new GridLayout(1,machinegraph.length);
		
		cadre.setLayout(disposition);
		
		
		
		//temp2 = new JPanel();
		
		
		for(int i=0;i<machinegraph.length;i++) {
			
			//cadre.add(colonne(machinegraph[i]));
			//temp2 = colonne(machinegraph[i]);
			
			cadre.add(colonne(machinegraph[i]));
			
		}
		
		
	}
	
	
	
	public void paintComponent(Graphics g){
    	
		super.paintComponent(g);
/*    	
		for(int i=0;i<NbMachine;i++){
			g.setColor(Color.BLUE);
			
			g.fillOval(machines[i].InfoCpu.x,machines[i].InfoCpu.y,10,10);
			
			
		}
		
	*/		
	}
	
	
	public void actionPerformed(ActionEvent evt){
	
		for(int i = 0;i<NbMachine;i++) {
			if(evt.getSource() == machines[i].boutonMachine) {
			
			/*	System.out.println("oki"+i);
				System.out.println("text "+machines[i].boutonMachine.getText());
			*/
				
				machines[i].InfoCpu.setEtat(false);
				
				machines[i].InfoCpu.repaint();
				
				if(machines[i].boutonMachine.isSelected()==true) {
					
					machines[i].InfoConnecte.setEtat(false);
					
					machines[i].InfoConnecte.repaint();
					
				}
				else {
					
					machines[i].InfoConnecte.setEtat(true);
					
					machines[i].InfoConnecte.repaint();
				}
				
			}
		}
		
	}
	
	
	
	
	public static void main(String args[]){
	
		String Liste_machine []={"ok","test","machine2","machine 3","machineee","mmaaa","err"};		
		
		JFrame fenetre=new JFrame("test");
		
		fenetre.setPreferredSize(new Dimension(LARGEUR_FENETRE,HAUTEUR_FENETRE));
		
		JScrollPane scroll;
		
		
		
		
		CadreCentre cadrecentre = new CadreCentre(Liste_machine);

		
		//construire(cadrecentre,cadrecentre.machines);
		
		scroll = new JScrollPane(cadrecentre);
		
		
		
		
	/*	scroll.setPreferredSize(new Dimension(LARGEUR_CADRE_CENTRAL,HAUTEUR_CADRE_CENTRAL));
		
		scroll.add(cadrecentre);
		
		scroll.setViewportView(cadrecentre);
		
		scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
		*/
		/*
		for(int i=0;i<cadrecentre.NbMachine;i++) {
			
			cadrecentre.add(cadrecentre.machines[i].boutonMachine);
		}
		*/
		
		setScrollBar(scroll,cadrecentre);
		
		construire(cadrecentre,cadrecentre.machines);
		
		//cadrecentre.repaint();
		
		//fenetre.setContentPane(cadrecentre);
		fenetre.add(scroll);
		//fenetre.setBounds(0, 0,310,310);
		fenetre.pack();
		//this.setVisible(true);
		fenetre.setVisible(true);
		
		
	}
	
	
}
